Exemples de fonctions concat
La fonction CONCAT() ne doit pas être confondue avec le mot-clé de script CONCATENATE.
Dans sa forme la plus simple, la fonction Concat() sert à chaîner ou regrouper des valeurs, des mots ou des sélections en une chaîne. Cependant, elle peut également vous permettre de résoudre différents types de problèmes. Tous les exemples font référence à la table suivante :
Table | MyColumn | Date | Value |
---|---|---|---|
Data | JKL | 01/01/2012 | 11 |
Data1 | WVX | 01/02/2012 | 13 |
Data | GHI | 01/03/2012 | 13 |
Data | ABC | 01/04/2012 | 15 |
Data1 | STU | 01/05/2012 | 18 |
Data1 | PQR | 01/06/2012 | 10 |
Data1 | MNO | 01/07/2012 | 25 |
Data | DEF | 01/08/2012 | 11 |
Concaténation de chaîne simple
Comme mentionné précédemment, la fonction concat vous permet de chaîner ensemble une liste de valeurs. Ces valeurs peuvent être codées en dur ou déterminées par des sélections ou des données.
=CONCAT(MyColumn,',')
=CONCAT(DISTINCT MyColumn,',')
Cette instruction concat simple crée une seule chaîne à partir de toutes les valeurs possibles figurant dans la colonne MyColumn. Vous pouvez également ajouter le mot-clé DISTINCT. Cela permet de garantir que chaque valeur n'apparaît qu'une seule fois dans la chaîne :
ABC,DEF,GHI,JKL,MNO,PQR,STU,VWX
Lors de l'utilisation d'une instruction concat simple, vous avez la possibilité d'ajouter à la fonction un facteur de pondération de tri afin d'ordonner les valeurs de la chaîne selon la colonne de votre choix. Dans l'exemple ci-dessous, les valeurs sont triées d'après la colonne de date qui a été ajoutée.
=CONCAT(MyColumn, ',', Date)
Résultat : Résultat : JKL,VWX,GHI,ABC,STU,PQR,MNO,DEF
Concat() au sein d'une expression d'ensemble/instruction Set
Passage de plusieurs valeurs dynamiques à une expression d'analyse d'ensembles
Certaines situations nécessitent le passage d'une sélection dynamique de valeurs à une instruction Set. Pour ce faire, vous devez ajouter des guillemets simples à la chaîne de sorte que la fonction CONCAT() renvoie, par exemple, 'JKL','VWX'. Cependant, vous ne pouvez pas conserver les guillemets tels quels, car ils seraient interprétés lors de l'évaluation de Concat au lieu de l'être lors de l'évaluation de l'expression d'ensemble. C'est pourquoi vous devez utiliser la fonction Chr() :
=CONCAT(Chr(39)&MyColumn&Chr(39),',')
Vous pouvez ensuite passer cette instruction concat à l'intérieur de l'expression :
=Sum({<MyColumn={$(=CONCAT(Chr(39)&MyColumn&Chr(39),','))}>} Value)
Dans la plupart des cas, cette technique est utilisée en présence d'îlots de données. Elle permet de passer des valeurs à une expression qui n'aura aucun effet sur le modèle de données, car la table de l'îlot de données n'y est pas jointe.
Concat() dans le script
Il est également possible d'utiliser Concat dans le script afin de convertir plusieurs lignes en une seule valeur de colonne, à l'instar de tout autre type d'agrégation.
En se référant aux données sources utilisées précédemment, le résultat du script côté CONCAT est le suivant :
La table suivante résulte de cette fonction de script :
Table | CombinedData |
---|---|
Data | ABC,DEF,GHI,JKL |
Data1 | MNO,PQR,STU,WVX |
Définition avancée de Concat() à l'aide de Rank()
Lorsque vous commencez à utiliser d'autres fonctions en combinaison avec concat(), vous obtenez des résultats plus sophistiqués. Dans cet exemple, Rank() est utilisé en vue de sélectionner les trois premiers résultats (calculés d'après la valeur) et de les réunir en une seule chaîne.
=CONCAT(IF(aggr(Rank(sum(Value)),MyColumn)<=3,MyColumn),',')
Résultat : ABC,MNO,STU